#!/bin/bash

# LVGL汽车时速表 - 快速修复脚本
# 用于解决常见的编译问题

echo "🔧 LVGL汽车时速表 - 快速修复脚本"
echo "=================================="

# 检查是否在正确目录
if [ ! -f "speedometer.c" ]; then
    echo "❌ 错误: 请在项目根目录运行此脚本"
    exit 1
fi

echo "📋 开始诊断和修复..."

# 1. 清理旧的编译产物
echo "🧹 清理编译产物..."
make clean 2>/dev/null

# 2. 检查并删除可能有问题的配置文件
echo "🔍 检查配置文件..."
if [ -f "lv_conf.h" ]; then
    echo "⚠️  发现旧的lv_conf.h，将重新创建"
    rm -f lv_conf.h
fi

if [ -f "lv_drv_conf.h" ]; then
    echo "⚠️  发现旧的lv_drv_conf.h，将重新创建"
    rm -f lv_drv_conf.h
fi

# 3. 重新创建配置文件
echo "📝 创建新的配置文件..."
make create-config

# 4. 检查LVGL源码
echo "📦 检查LVGL源码..."
if [ ! -d "lvgl" ]; then
    echo "📥 下载LVGL源码..."
    make setup-lvgl
else
    echo "✅ LVGL源码已存在"
fi

# 5. 检查依赖
echo "🔍 检查系统依赖..."
make check-deps

# 6. 尝试编译
echo "🔨 尝试编译..."
if make; then
    echo "✅ 编译成功！"
    echo ""
    echo "🎉 修复完成！现在可以运行程序："
    echo "   ./speedometer"
    echo ""
    echo "📖 使用说明："
    echo "   - 程序启动后会显示汽车仪表盘"
    echo "   - 点击界面可以模拟不同操作"
    echo "   - 程序会自动演示速度变化"
    echo ""
else
    echo "❌ 编译仍然失败"
    echo ""
    echo "🔧 请尝试以下步骤："
    echo "1. 检查系统依赖是否完整安装："
    echo "   make install-deps"
    echo ""
    echo "2. 深度清理并重新设置："
    echo "   make distclean"
    echo "   make setup-lvgl"
    echo "   make"
    echo ""
    echo "3. 查看详细错误信息："
    echo "   make 2>&1 | less"
    echo ""
    echo "4. 如果仍有问题，请查看README.md的故障排除部分"
fi

echo ""
echo "🏁 修复脚本执行完成"